1. Field of the Invention
The present invention relates to the rendering of high-quality images on a display with moderate resolution and, more particularly, to the rendering of high-quality images using a color table.
2. Description of the Related Art
In today's high-tech office, documents are often created in electronic form and them printed. Tools for document creation have become increasingly powerful, allowing the user to create complex and sophisticated images. This advance is expressed in the phrase "desktop publishing", which implies that the user now has at his or her fingertips the capabilities which formerly were available only through a publisher. Printing hardware has also improved with high-resolution laser printers and the emerging support for full color. One of the problems that arises with the current technology is that the user may be surprised to find that the printed output does not look the same as the electronic image displayed on the workstation. Many programs try to make the two images match, supporting a what-you-see-is-what-you-get (or WYSIWYG) approach. Hardware differences, however, may make true matching impossible. One such difference is resolution. A laser printer may be able to print at 300 spi, while the workstation may support only about a quarter of this density. A compensating difference is that a sophisticated display may support continuous gray levels and/or colors, while a print may have to use halftones. A color display will often be driven through a 256 element color lookup table, limiting the number of colors which may be displayed at any one time, while a printer, using halftones, can produce many more. Finally, the color primaries and white point of the workstation may be different from the inks and paper available at the printer. It would be desirable, therefore, to display an image at the workstation which overcomes most of these differences.
The problem of low resolution in the display can be reduced by use of the display's intensity level. In computer graphics, this technique has long been used to reduce the aliasing effects of the low resolution display. Effects such as "jaggies" in lines as they cross pixel boundaries, and "drop out" of small objects which fall between the pixels, are countered by setting the pixel intensities to intermediate levels to reflect that part of the pixel which is covered by the object and the part which is not. Perhaps the simplest anti-aliasing technique, as illustrated in FIG. 1, is to compute the image at a higher resolution, and then average the pixel values to obtain the lower resolution intensity. For example, if the image were created at four times the resolution, then four by four blocks of pixels would be averaged to obtain the display pixel value. This is, in effect, saying that the display pixels are non-overlapping squares with abrupt edges. Real pixels tend to be round and overlapping, with tapering edges. More sophisticated techniques, therefore, apply a digital filter to the high-resolution image which, in effect, convolves the image with the pixel profile.
In the area of desktop publishing, the effects of resolution are strongly apparent in text. Fonts available for the coarse screen resolution are large and simplistic. They cannot show the subtle effect of different font selections. Their size may make them out of proportion to the rest of the page. One may be unable to place the characters in the same positions as on the printed page due to crowding, giving either false page layout and line breaks, or some unreadable representation of the page.
The anti-aliasing techniques of computer graphics can be applied to the display of text. The fine elements and non-integral pixel widths of character strokes become partially illuminated pixels. This gives the illusion of increased resolution, and permits much smaller font sizes to be displayed. It also permits the placing of characters at non-integral pixel positions.
The human visual system is able to distinguish a large number of colors. To cover this range of colors, display devices often provide 256 choices (8 bits) for each of the three primary colors, red, green and blue. This is a total of 24 bits or 2.sup.24 possible colors. To simultaneously render any or all of these colors requires a backing frame buffer with 24 bits per pixel. To reduce cost, displays usually provide a smaller pallet of colors which may be selected from this large set. This is implemented by means of a color lookup table. A 256 entry table can be accessed by an 8-bit index. Each table entry can contain a 24-bit color specification. Thus, as shown in FIG. 2, a frame buffer with only 8-bits per pixel can be used by looking up each pixel value in the color table to obtain 24-bit color. The display can produce 2.sup.24 colors, but can render only 256 of them at any one time.
Color lookup tables have proven useful in their own right. By changing a value in the table, one can alter the appearance of all the pixels which reference this table entry. This is much faster than altering the pixels individually. Color tables can support fast color manipulation, structuring of the image, color correction, and even animation effects. The limited set of simultaneous colors, however, presents a problem concerning which colors should be chosen for the color table entries. Scanned images and some computer generated effects contain far more colors than the allowed 256. One must somehow pick colors that do not deviate too far from the true colors of the image. One would also like to reduce the false contours which arise when a smooth variation in color is displayed as a jump between one producible color and the next. This is just aliasing in color space. One approach to this problem is to first analyze the image to determine which colors are most representative. This can be a costly process. An alternative approach is to set the table to a fixed set of distributed colors, and then superimpose halftoning techniques to give the appearance of intermediate colors. In this approach, resolution is being traded for intensity levels of the color primaries. The halftone screen is used to choose between the available bounding colors for each pixel. A rectangular, dispersed dot screen applied to each of the primary color components is straightforward and adequate. It also allows one to display the image as it is drawn. An error diffusion approach has also been tried. This gives slightly better results, but must be applied to the entire image, and is not used with individual image components.
Since color is a three-dimensional space, halftoning is applied three times for each pixel to achieve the appearance of intermediate values for each of the three color coordinates. The elements of the color lookup table are partitioned along the color coordinate axis to support the independent halftoning of each coordinate. If the coordinate axis is red, green and blue, the 8-bit color table index may be split into three bits of red, three bits of green, and two bits of blue. This gives eight shades of red, eight shades of green, and four shades of blue, plus all their combinations. Blue is chosen to receive only two bits because the eye is less sensitive to blue. An alternative is to allocate six shades of red, six shades of green, and six shades of blue. The color table is thought of as a three-dimensional array with six elements in each dimension. This gives the mapping from color coordinates to color table index.
There are many possible coordinate systems used in describing color space besides red, green and blue. One alternative is to rotate and scale the axis so that one corresponds to the luminance Y. Luminance is a measure of how bright the color appears (yellow appears brighter than blue). The other two coordinates give the chrominance information. This approach is used in the television industry, which implements the YIQ color model. The Y component gives the luminance, which is shown on black-and-white sets. All three coordinates are used for color television.
One color encoding standard describes the YES color model. Again, Y is the luminance, and the E and S coordinates give the chrominance. The E coordinate is the green to red axis, and the S coordinate is the blue to yellow axis using the red, green, and blue primaries and white point. The YES coordinates are given by EQU Y=0.253 R+0.684 G+0.063 B EQU E=0.5 R-0.5 G EQU S=0.25 R+0.25 G-0.5 B
where R, G, B are the red, green and blue coordinates of the color. One advantage of this color model is that the E and S coordinates are very easy to calculate.
The YES color coordinates are not visually uniform. Equivalent displacements in these coordinates generally do not appear to the eye as equivalent changes in color. There are visually uniform color spaces, notably the L*a*b* and L*u*v* color models. Using these coordinates for color table assignments and halftoning gives slightly better results, since the colors appear uniformly distributed, and the halftoning is linear with respect to appearance. However, these coordinates are much costlier to calculate.
U.S. Pat. No. 4,812,903 to Wagensonner et al. discloses a system for electronically enhancing an image of a colored original in order to produce a copy of that original. RGB color signals are first passed through a gray balancing unit and then to an illuminance and chrominance generating unit. In the generating unit, a luminance signal and a pair of chrominance signals corresponding to color image signals of an image to be copied are formed. The luminance signal is processed to enhance. sharpness of an image, and one or both of the chrominance signals are also processed in a color saturation adjusting unit. Lookup tables are provided for converting the adjusted chrominance signals back to corresponding RGB color signals.
U.S. Patent No. 4,841,360 to Birgmeir discloses a system for electronically enhancing an image to be reproduced. The system includes a lookup table for taking into account a characteristic function of a CRT on which an image is to be displayed. The characteristic function constitutes the brightness or illumination of the CRT.
U.S. Patent Nos. 4,831,434 and 4,812,902 Fuchsberger disclose methods for correcting color saturation in electronic image processing. Color retention is corrected by converting RGB color signals into a luminance signal and two chrominance signals which are subsequently adjusted and converted back to color signals by using various lookup tables.
U.S. Patent No. 4,758,885 to Sasaki et al. discloses a method of processing color images wherein a high resolution image is converted so that it can be displayed on a lower resolution color printer or the like. An input image of full color is converted over to a L*u*v* system which is based on brightness and saturation. The L*u*v* components are then compressed, converted into CMY signals and sent to a printer. A method of calculating the L*u*v* components from an RGB signal is shown.
U.S. Pat. No. 4,887,151 To Wataya discloses an encoding apparatus for color image data wherein an RGB signal is converted into a L*a*b* color space and then into a LSC color space. The LSC color space consists of a luminosity component, a structure component and a color component. An image is broken down into smaller blocks which are converted into the LSC color space. Color lookup tables are used to convert an RGB image into an intermediate L*a*b* color space.
U.S. Patent No. 4,916,531 to Genz et al. discloses a color video processing circuit wherein an RGB image is converted into a HSI system. The circuit shown is capable of doing the RGB to HSI conversion which is usually done using software. The HSI system allows a user to interpret a color more easily. Several related methods of converting an RGB image into another system are shown.
While the related art recognizes the problems involved in processing color images on a lower resolution printer or monitor, the art does not provide an efficient and effective rendering of high resolution, high quality color images on a display of moderate resolution and limited color selectability in a manner which results in minimal aliasing.